package cn.csc.module.distribute.controller.admin.withdraw.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDateTime;

import static cn.csc.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel(value = "管理后台 - 提现记录 Excel 导出 Request VO", description = "参数和 DistributeWithdrawPageReqVO 是一致的")
@Data
public class DistributeWithdrawExportReqVO {

    @ApiModelProperty(value = "用户ID")
    private BigInteger userId;

    @ApiModelProperty(value = "分销商姓名")
    private String name;

    @ApiModelProperty(value = "分销商电话")
    private String mobile;

    @ApiModelProperty(value = "银行卡号", required = true)
    private String acctNo;

    @ApiModelProperty(value = "开户支行名称", required = true)
    private String acctOpenBranchName;

    @ApiModelProperty(value = "收款人", required = true)
    private String payee;

    @ApiModelProperty(value = "申请提现金额", required = true)
    @NotNull(message = "申请提现金额不能为空")
    private BigDecimal applyAmount;

    @ApiModelProperty(value = "实际打款金额", required = true)
    @NotNull(message = "实际打款金额不能为空")
    private BigDecimal actualAmount;

    @ApiModelProperty(value = "审核状态 0:待审核 5:审核通过提现 10:审核不通过")
    private Integer auditStatus;

    @ApiModelProperty(value = "审核原因")
    private String auditReason;

    @ApiModelProperty(value = "支付凭证")
    private String payVoucher;

    @ApiModelProperty(value = "备注")
    private String comment;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
